package org.lc.platform.redis.service;


import org.springframework.data.redis.core.RedisTemplate;

import java.util.List;
import java.util.Map;

public interface CacheService {
    void setStr(String key, String value, Long expired);

    void setStr(String key, String value);


    String getStr(String key);

    void setInt(String key, Integer value, Long expired);


    void setInt(String key, Integer value);

    RedisTemplate<Object, Object> getRedis();

    Integer getInt(String key);

    Integer getInt(String key, int defaultValue);


    Map<Object, Object> getMap(String key);


    void setFloat(String key, Float value, Long expired);


    void setFloat(String key, Float value);

    Float getFloat(String key);
    Float getFloat(String key, float defaultValue);

    void set(String key, Object value, Long expired);

    void set(String key, Object value);

    <T> T get(String key, Class<T> cls);

    Object get(String key);

    <T> void setList(String key, List<T> list);

    /**
     * 获取List集合
     */
    <T> List<T> getList(String key);

    void remove(String key);

    void remove(String... key);

    Boolean hasKey(String key);
}
